package video

import db "tacitus/library/database"

// 视频
type Video struct {
	ID          int64  `json:"id" xorm:"pk autoincr"`
	Title       string `json:"title"`
	Picture     string `json:"picture"`
	TeacherID   int64  `json:"teacher_id"`
	Content     string `json:"content"`
	StorageType string `json:"storage_type"` // 存储方式:ali_vod
	StorageID   string `json:"storage_id"`   // 阿里云上的视频编号
	Duration    int  `json:"duration"`
	Hits        int    `json:"hits"`   // 点击量
	CreateTime  int64  `json:"create_time"`
}

func (Video) TableName() string {
	return db.TablePrefix + "video"
}

func MatchVideoDuration(ids []int64) (res map[int64]int, err error) {
	data := make([]Video, 0)
	if err = rx.In("id", ids).Cols("id", "duration").Find(&data); err != nil {
		return
	}
	res = make(map[int64]int)
	for _, item := range data {
		res[item.ID] = item.Duration
	}
	return
}

// 视频包
type Package struct {
	ID          int64  `json:"id" xorm:"pk autoincr"`
	Title       string `json:"title"`
	Picture     string `json:"picture"`
	TeacherID   int64  `json:"teacher_id"`
	Content     string `json:"content"`
	VideoIDList string `json:"video_id_list"` // 包含的视频编号列表
	Hits        int    `json:"hits"`   // 点击量
	CreateTime  int64  `json:"create_time"`
}

func (Package) TableName() string {
	return db.TablePrefix + "video_pack"
}

// 教师
type Teacher struct {
	ID       int64  `json:"id" xorm:"pk autoincr"`
	Name     string `json:"name"`
	Describe string `json:"describe"`
}

func (Teacher) TableName() string {
	return db.TablePrefix + "video_teacher"
}
